Before a direct rendering process can begin referencing the graphics pipe through the rendering node's pipe memory mapping, the rendering node must be bound to a window. For OpenGL, this happens at glXMakeCurrent time via a graphics driver ioctl.
The kernel manages a cache of bound and recently bound windows. The cache, known as the pane cache, allows OpenGL threads to quickly bind and rebind to windows. If the window being bound to is not found in the pane cache, a currently unbound pane cache entry is selected and reused for the window, and a message is sent to the X server notifying it that a direct renderer is interested in rendering to the specified X window ID. This message allows the X server to initialize data structures for the window to keep track of direct rendering.
A new entry in the pane cache will have two important resources marked invalid. The first resource is the clip resource. When valid, this means the X server has properly informed the kernel of the proper window origin and clip rectangles or CID to be used for clipping rendering to the window. The second resource indicates if the window is assigned a swappable DID.